package cn.tedu.mapper;

import cn.tedu.entity.User;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * Author：程Sir
 * Name： SpringTest01
 * Content:
 */
@Component
public class UserDao {

    // 通过依赖注入把Connection对象引入
    // 1. 获取链接  Connection
//    @Resource
//    private Connection connection;
    @Resource
    private DruidDataSource druidDataSource;
    public List<User> findAll() throws SQLException {
        /*
        *   jdbc访问数据的固定步骤：
        * 1. 获取链接  Connection
        * 2. 撰写SQL
        * 3. 获取指定的计划，执行SQL
        * 4. 获取结果集
        * 5. 最结果集进行操作
        * 6. 返回获得的POJO
        *
        * */
        Connection connection = druidDataSource.getConnection();

        // 2. 撰写SQL
        String sql = "select* from bloguser";
        // 3. 获取指定的计划，执行SQL
        PreparedStatement statement = connection.prepareStatement(sql);
        // 4. 获取结果集
        ResultSet resultSet = statement.executeQuery();
        // 创建一个存储user对象的集合
        List<User> list = new ArrayList<User>();

        // 5. 最结果集进行操作
        while (resultSet.next()){
            Integer id = resultSet.getInt("id");
            String username = resultSet.getString("username");
            String password = resultSet.getString("password");
            User user = new User().setId(id).setUsername(username).setPassword(password);
            // 将user放入list中
            list.add(user);
        }

        return list;

    }
}
